#pragma once

class GraphicsRenderer;

#include <d3d11.h>
#include "ShaderData.h"
struct LineRenderData
{
	LineRenderData(): VertexBuffer(nullptr), VertexStride(0), VertexOffset(0)
	{

	}
	ID3D11Buffer* VertexBuffer;
	UINT VertexStride;
	UINT VertexOffset;
};

class LineList
{
	friend class GraphicsRenderer;
public:
	LineList();
	LineList(const LineList& other);
	LineList(const LineVertex* vertices, int numVertices);
	LineList(const DirectX::XMFLOAT3* positions, DirectX::XMFLOAT3 color, int numVertices);
	LineList(const DirectX::XMFLOAT3* positions, int numVertices);
	LineList& operator=(const LineList& other);
	~LineList(void);
	HRESULT InitializeD3D(ID3D11Device* d3dDevice);
	HRESULT UpdateD3d( ID3D11DeviceContext* m_d3dContext );
	void ClearD3d(void);
private:
	int m_numVertices;
	LineVertex* m_vertices;
	LineRenderData m_renderData;
};

